# 动态规划
def max_score(scores: List[int]):
    # 第一步, 定义状态, 用一个数组, 表示当前轮次的最高得分
    # 第二部, 状态转义方程, f(n) = max(f(n-1)+scores[n], f(n-3))
    if not scores:
        return 0
    state = []
    for i in range(len(scores)):
        # 前三个特殊处理
        if i < 3:
            state.append(max(0+scores[i], 0))
        else:
            state.append(max(state[i-1]+scores[i], state[i-3]))

    print(state)
    return state[-1]


if __name__ == '__main__':
    print(max_score([1, -5, -6, 4, 3, 6, -2]))